package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Teacher;

/*
    库管类
        1.核心职责是管理我们的数据仓库--数组:增删改查
        2.这里的所有方法【功能】都是给业务员用
 */
public class TeacherDao {
    //1.创建一个长度为5的老师数组,用来充当数据库
    private static Teacher[] teachers = new Teacher[5];

    public boolean addTeacher(Teacher teach) {
        //2.遍历数组
        for (int i = 0; i < teachers.length; i++) {
            //获取当前索引位置的元素
            Teacher teacher = teachers[i];
            //如果当前索引位置的元素的值是null,表示当前索引位置可以用来存放数据
            if (teacher == null) {
                teachers[i] = teach;
                //塞进去了给调用者一个反馈:true表示添加成功
                return true;
            }
        }
        //如果程序能执行到这,说明上面的return true一次都没执行.
        return false;
    }

    public Teacher[] findAllTeacher() {
        return teachers;
    }

    public void deleteTeacherByTid(String delTid) {
        //1.找到要删除的老师id对应的老师在数组中的索引位置
        int index = getIndex(delTid);
        //2.将该索引位置重赋值为null,就相当于该位置的老师对象删除了
        teachers[index] = null;
    }

    //查找教师编号对应的老师在老师数组中的索引位置
    public int getIndex(String delTid) {
        //定义一个标记:index = -1,默认要查找的id在数组中不存在
        int index = -1;
        for (int i = 0; i < teachers.length; i++) {
            Teacher teacher = teachers[i];
            if (teacher != null && teacher.getId().equals(delTid)) {
                index = i;
                break;
            }
        }
        return index;
    }
    //修改老师
    public void updateTeacherByTid(String upTid, Teacher newteacher) {
        //查找upTid在数组中的索引位置
        int index = getIndex(upTid);
        //使用newTeacher去替换该索引位置的原有信息,从而实现修改
        teachers[index]= newteacher;
    }
}
